Testing software, such as validating or verifying software, is a common activity among information technology (IT) organizations. For example, whether the software is a desktop application for execution at one or more client computer systems, mobile device application for execution on a mobile device, or a web application for execution at one or more server computer systems, it is often important to verify the quality of the software. While some types of errors in software cause only annoyance or inconvenience to users, other types of errors have the potential to cause other problems, such as data and financial loss.
One type of software that is becoming more ubiquitous is event-driven software such as graphical user interface (GUI) based applications and web based applications. In event-driven software, the flow of the software may be determined by events such as user actions (mouse clicks, key presses), sensor outputs, or messages from other programs/threads. Using event-driven software may ease use of mobile devices and other devices for users. However, event-driven software also provides challenges in analyzing the behavior of these programs.
The subject matter claimed in the present disclosure is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described in the present disclosure may be practiced.